package gaej.example.contact.client;

import java.util.List;

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface MusicServiceAsync  {
    void listComponisten(AsyncCallback<List <Componist>> callback);
    void addComponist(Componist componist, AsyncCallback<Void> callback);
    void removeComponist(Componist componist, AsyncCallback<Void> callback);
    void updateComponist(Componist componist, AsyncCallback<Void> callback);
    
    void listDirigenten(AsyncCallback<List <Dirigent>> callback);
    void addDirigent(Dirigent dirigent, AsyncCallback<Void> callback);
    void removeDirigent(Dirigent dirigent, AsyncCallback<Void> callback);
    void updateDirigent(Dirigent dirigent, AsyncCallback<Void> callback);
    
    void listMuziekstukken(AsyncCallback<List <Muziekstuk>> callback);
    void listMuziekstukBezetting(Muziekstuk muziekstuk, AsyncCallback<List<Bezetting>> callback);
    void addMuziekstuk(Muziekstuk muziekstuk, AsyncCallback<Void> callback);
    void removeMuziekstuk(Muziekstuk muziekstuk, AsyncCallback<Void> callback);
    void updateMuziekstuk(Muziekstuk muziekstuk, AsyncCallback<Void> callback); 
    
    void listUitvoeringen(AsyncCallback<List<Uitvoering>> callback );
    void addUitvoering(Uitvoering uitvoering, AsyncCallback<Void> callback);
    void removeUitvoering(Uitvoering uitvoering, AsyncCallback<Void> callback);
    void updateUitvoering(Uitvoering uitvoering, AsyncCallback<Void> callback);       
    
}

